#ifndef HEROPLANE_H
#define HEROPLANE_H

#include <QPixmap>
#include "bullet.h"
#include <QMovie>

class HeroPlane
{
public:
    HeroPlane();
    
    //发射子弹
    void shoot();
    //设置飞机位置
    void setPosition(int x, int y);
    
public:
    //飞机资源 对象
    QPixmap m_Plane;
    
    //飞机坐标
    int m_X;
    int m_Y;
    
    //飞机的矩形边框
    QRect m_Rect;
    //弹匣
    Bullet m_bullets[BULLET_NUM];
    
    //发射间隔记录
    int m_recorder;
    
    //无敌状态
    bool m_isInvincible;    // 是否处于无敌状态
    int m_invincibleTimer;  // 无敌时间计数器
    
    
    // 替换原有QPixmap
    QMovie* m_planeMovie;      // GIF动画控制器
    QPixmap m_currentFrame;    // 当前帧缓存            // 位置坐标
    
    // 初始化GIF
    void initAnimation() {
        m_planeMovie = new QMovie(HERO_PATH);
        m_planeMovie->setCacheMode(QMovie::CacheAll); // 预加载所有帧
        QObject::connect(m_planeMovie, &QMovie::frameChanged, [this](){
            m_currentFrame = m_planeMovie->currentPixmap();
        });
        m_planeMovie->start();
    }
};

#endif // HEROPLANE_H

